package main

import (
	"gitee.com/chejiangyi/bsfgo/core/db"
	_ "gitee.com/chejiangyi/bsfgo/demo/docs" //导入swagger文件地址
	"gitee.com/chejiangyi/bsfgo/demo/domain"
	"gitee.com/chejiangyi/bsfgo/demo/task"
	"gitee.com/chejiangyi/bsfgo/gin2"
	"gitee.com/chejiangyi/bsfgo/gorm2"
	"gitee.com/chejiangyi/bsfgo/redis2"
	"github.com/gin-gonic/gin"
)

// @title Demo系统API
// @version 1.0
// @description 这是一个Demo系统的API文档
// @contact.name API支持
// @contact.email 无
// @license.name 无
// @host
// @BasePath /api
// @securityDefinitions.apikey ApiKeyAuth
// @in header
// @name Token
func main() {
	//web网站
	gin2.InitWeb(func(r *gin.Engine) {
		//全局初始化单例
		domain.DataSourceInstance = (&db.DbSource{}).CreatePool()
		domain.RedisInstance = redis2.RedisUtil.NewRedisClient()
		domain.GormInstance = gorm.GormUtil.CreateDb()
		//后台任务启动
		myTask := &task.MyTask{}
		defer myTask.Close()
		myTask.Init()
		//加载路由
		InitRoutes(r)
		//启动任务
		myTask.Start()
	})
}
